package com.service.tools;

import java.security.MessageDigest;

public class MD5Util {

//	 public final static String MD5(String s) {
//	        char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};       
//	        try {
//	            byte[] btInput = s.getBytes();
//	            // 获得MD5摘要算法的 MessageDigest 对象
//	            MessageDigest mdInst = MessageDigest.getInstance("MD5");
//	            // 使用指定的字节更新摘要
//	            mdInst.update(btInput);
//	            // 获得密文
//	            byte[] md = mdInst.digest();
//	            // 把密文转换成十六进制的字符串形式
//	            int j = md.length;
//	            char str[] = new char[j * 2];
//	            int k = 0;
//	            for (int i = 0; i < j; i++) {
//	                byte byte0 = md[i];
//	                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
//	                str[k++] = hexDigits[byte0 & 0xf];
//	            }
//	            return new String(str);
//	        } catch (Exception e) {
//	            e.printStackTrace();
//	            return null;
//	        }
//	    }
	 

	 public static void main(String[] args) {
//		System.out.println(MD5("z321321"));
		
//		System.out.println(MD5by32w("\"equipmentNO\":\"ZJLY0006\",\"mixingId\":0,\"userName\":\"xrmc      \",\"formula\":0,\"stone1\":744,\"stone2\":545,\"stone3\":1093,\"stone4\":179,\"stone5\":0,\"stone6\":0,\"asphalt\":126,\"powderLot1\":75,\"powderLot2\":54,\"thickPowder\":0,\"thinPowder\":0,\"additive\":0,\"mixingTemp\":0,\"mixingTotal\":2816,\"mixingTime\":\"2015-09-24 10:48:32.0\",\"companyCode\":\"009\","));
	}

	 public static String MD5by32w(String inStr) {
		  MessageDigest md5 = null;    
		  try {   
		   md5 = MessageDigest.getInstance("MD5");   
		  } catch (Exception e) {   
		    
		   e.printStackTrace();   
		   return "";   
		  }   
		  char[] charArray = inStr.toCharArray();   
		  byte[] byteArray = new byte[charArray.length];   
		  
		  for (int i = 0; i < charArray.length; i++)   
		   byteArray[i] = (byte) charArray[i];   
		  
		  byte[] md5Bytes = md5.digest(byteArray);   
		  
		  StringBuffer hexValue = new StringBuffer();   
		  
		  for (int i = 0; i < md5Bytes.length; i++) {   
		   int val = ((int) md5Bytes[i]) & 0xff;   
		   if (val < 16)   
		    hexValue.append("0");   
		   hexValue.append(Integer.toHexString(val));   
		  }   
		  
		  return hexValue.toString().toUpperCase();   
		 }   
}
